<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>

//【示例1】最常见就是连续赋值运算。
var a = b = c = 1;
//【示例2】三元运算符（?:）在连续运算中扮演了重要角色，使用它能够代替分支结构。
event ? event : window.event;

if(event)
    event = event; 			// 如果支持Event事件对象，则直接使用event
else
    event = window.event; 
	// 如果不支持Event事件对象，则调用Window对象的属性event
//【示例3】三元运算符不仅能够代替简单的分支结构，还能够代替多重分支结构，从而发挥连续运算的特性。
var a = (( a == 1 ) ? alert( 1 ) : 	// 如果a等于1，则提示1
       ( a == 2 ) ? alert( 2 ) : 		// 如果a等于2，则提示2
       ( a == 3 ) ? alert( 3 ) : 		// 如果a等于3，则提示3
       ( a == 4 ) ? alert( 4 ) : 		// 如果a等于4，则提示4
       alert( undefined ) 				// 否则提示undefined
   ); 									// 多个三元运算符连续运算

switch (a){
    case 1:
        alert(1);
        break;
    case 2:
        alert(2);
         break; 
    case 3:
        alert(3);
        break; 
    case 4:
        alert(4);
        break; 
    default:
        alert(undefined);
}
//【示例4】除了分支结构可以转换为表达式外，对于对象、函数和方法调用都可以作为运算元，参与到表达式的运算中去。
var f = function(x,y){ 		// 定义匿名函数
    return (x+y)/2;
}
alert(f(10,20)); 				// 调用匿名函数

alert(
     (function( x, y ){
        return ( x + y ) / 2;
    })( 10, 20 ) 				// 直接调用匿名函数
); 								// 返回值15
//【示例5】如果是多层嵌套函数，则可以使用多个小括号进行连续调用。
alert(
     ( function(){
        return function(x, y){
            return function(){
                return ( x + y ) / 2;
            }
        }
    })()( 10, 20 )() 			// 连续三次调用运算
); 								// 返回值15

var f = function(){
    return function(x, y){
        return function(){
            return ( x + y ) / 2;
        }
    }
}
var f1 = f();					// 第一次调用外层函数
var f2 = f1(10,20); 			// 第二次调用中层函数
var f3 = f2();					// 第三次调用内层函数
alert(f3); 						// 返回值15
//【示例6】下面示例演示如何使用表达式来创建对象的过程。
var o = typeof 56; 			// 返回数值56的类型
alert(
    (new (					// 使用运算符new，根据多条件运算式返回值创建对象
        (o == "string") ? String :
        (o == "number") ? Number :
        (o == "boolean") ? Boolean :
        (o == "array") ? Array :
        Object
      )
    ).toString()			// 把创建的对象转换为字符串返回
)



</script>
</head>
<body>




</body>
</html>
